/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mvc.dao;
import com.sun.org.apache.bcel.internal.generic.AALOAD;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.LinkedList;
import mvc.modelos.HojaDeVida;
import mvc.modelos.Inscripcion;

/**
 *
 * @author pezcado
 */
public class InscripcionDAO implements IDAO<Inscripcion> {

    private PreparedStatement consultar;
    private PreparedStatement insertar;
    private PreparedStatement modificar;
    private PreparedStatement eliminar;
    private PreparedStatement listar;
    private Model model;

    public Inscripcion consultar(int codigo) throws SQLException {
        model= model.getInstance();
        String sql="select codigo, programaAcademico, semestreAcademico, celular, telefono, tipoSangre, fechaInscripcion, "
                + "aspirante_identificacion, aspirante_codigo, semilleroTaller_GrupoRepresentativo_codigo, id, estado, descripcion from Inscripcion where codigo="+codigo;
        consultar=model.getCon().prepareStatement(sql);
        ResultSet resultSet= consultar.executeQuery();
        Inscripcion inscripcion= new Inscripcion();
            
        try{
            resultSet.next();

            inscripcion.setCodigo(resultSet.getInt("codigo"));
            inscripcion.setProgramaAcademico(resultSet.getString("programaAcademico"));
            inscripcion.setSemestreAcademico(resultSet.getString("semestreAcademico"));
            inscripcion.setCelular(resultSet.getString("celular"));
            inscripcion.setTelefono(resultSet.getString("telefono"));
            inscripcion.setTipoSangre(resultSet.getString("tipoSangre"));
            inscripcion.setFechaInscripcion(resultSet.getString("fechaInscripcion"));
            inscripcion.setAspiranteIdentificacion(resultSet.getInt("aspirante_identificacion"));
            inscripcion.setAspiranteCodigo(resultSet.getInt("aspirante_codigo"));
            inscripcion.setSemilleroTaller_GrupoRepresentativo_codigo(resultSet.getInt("semilleroTaller_GrupoRepresentativo_codigo"));
            inscripcion.setId(resultSet.getInt("id"));
            inscripcion.setEstado(resultSet.getString("estado"));
            inscripcion.setDescripcion(resultSet.getString("descripcion"));
            //return inscripcion;
        }catch(Exception e){

        }
        return inscripcion;
    }

    public void insertar(Inscripcion IDAO) throws SQLException {
        model= model.getInstance();
        if(insertar==null){
            String sql="insert into Inscripcion values(?,?,?,?,?,?,?,?,?,?,?,?,?)";
            insertar= model.getCon().prepareStatement(sql);
        }
        
        insertar.setInt(1, IDAO.getCodigo());
        insertar.setString(2, IDAO.getProgramaAcademico());
        insertar.setString(3, IDAO.getSemestreAcademico());
        insertar.setString(4, IDAO.getCelular());
        insertar.setString(5, IDAO.getTelefono());
        insertar.setString(6, IDAO.getTipoSangre());
        insertar.setString(7, IDAO.getFechaInscripcion());//ojo con esta linea
        insertar.setInt(8, IDAO.getAspiranteIdentificacion());
        insertar.setInt(9, IDAO.getAspiranteCodigo());
        insertar.setInt(10, IDAO.getSemilleroTaller_GrupoRepresentativo_codigo());
        insertar.setInt(11, IDAO.getId());
        insertar.setString(12, IDAO.getEstado());
        insertar.setString(13, IDAO.getDescripcion());
        
        insertar.executeUpdate();
    }

    public void modificar(Inscripcion IDAO) throws SQLException {
        model= model.getInstance();
        String sql="update Inscripcion set"
                + "programaAcademico='"+IDAO.getProgramaAcademico()+"',"
                + "semestreAcademico='"+IDAO.getSemestreAcademico()+"',"
                + "celular='"+IDAO.getCelular()+"',"
                + "tipoSangre='"+IDAO.getTipoSangre()+"',"
                + "fechaInscripcion='"+IDAO.getFechaInscripcion()+"',"
                //+ "identificacion='"+IDAO.getAspiranteIdentificacion()+"',"
                + "estado='"+IDAO.getEstado()+"',"
                //+ "id='"+IDAO.getId()+"',"
                + "descripcion='"+IDAO.getDescripcion()+","
                + "where codigo="+IDAO.getCodigo();

        modificar=model.getCon().prepareStatement(sql);
        modificar.executeUpdate();
    }

    public void eliminar(Inscripcion IDAO) throws SQLException {
        model= model.getInstance();
        String sql="delete from Inscripcion where codigo="+IDAO.getCodigo();
        eliminar=model.getCon().prepareStatement(sql);
        
        eliminar.executeUpdate();
    }

    public LinkedList<Inscripcion> listar() throws SQLException {
        model.getInstance();
        LinkedList<Inscripcion> listaInscripciones= new LinkedList<Inscripcion>();
        
        String sql="select codigo, programaAcademico, semestreAcademico, celular, telefono, tipoSangre, fechaInscripcion, "
                + "aspirante_identificacion, aspirante_codigo, semilleroTaller_GrupoRepresentativo_codigo, id, estado, descripcion from Inscripcion";
        listar= model.getCon().prepareStatement(sql);
        ResultSet resultSet= listar.executeQuery();
        
        while(resultSet.next()){
            Inscripcion inscripcion= new Inscripcion();
            inscripcion.setCodigo(resultSet.getInt("codigo"));
            inscripcion.setProgramaAcademico(resultSet.getString("programaAcademico"));
            inscripcion.setSemestreAcademico(resultSet.getString("semestreAcademico"));
            inscripcion.setCelular(resultSet.getString("celular"));
            inscripcion.setTelefono(resultSet.getString("telefono"));
            inscripcion.setTipoSangre(resultSet.getString("tipoSangre"));
            inscripcion.setFechaInscripcion(resultSet.getString("fechaInscripcion"));
            inscripcion.setAspiranteIdentificacion(resultSet.getInt("aspirante_identificacion"));
            inscripcion.setAspiranteCodigo(resultSet.getInt("aspirante_codigo"));
            inscripcion.setSemilleroTaller_GrupoRepresentativo_codigo(resultSet.getInt("semilleroTaller_GrupoRepresentativo_codigo"));
            inscripcion.setId(resultSet.getInt("id"));
            inscripcion.setEstado(resultSet.getString("estado"));
            inscripcion.setDescripcion(resultSet.getString("descripcion"));
            listaInscripciones.add(inscripcion);
            
        }
        
        return listaInscripciones;
    }
    
}
